package concursos.ejb;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.ejb.LocalBean;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import concursos.daos.LembreteDAO;
import concursos.interfaces.LembreteService;
import concursos.modelos.Lembrete;

@Stateless
@LocalBean
public class LembreteEjb implements LembreteService {

	private LembreteDAO dao;
	@PersistenceContext(unitName = "meusconcursosejb")
	private EntityManager manager;

	public LembreteDAO getDao() {
		if (this.dao == null)
			this.dao = new LembreteDAO(this.manager);
		return this.dao;
	}

	public LembreteEjb() {
	}

	@Override
	public void salvarLembrete(Lembrete lembrete) {
		this.getDao().salvarLembrete(lembrete);
	}

	@Override
	public void excluirLembrete(Lembrete lembrete) {
		this.getDao().excluirLembrete(lembrete);
	}

	@Override
	public List<Lembrete> listarLembretes(int usuario) {
		return this.getDao().listarLembretes(usuario);
	}

	@Override
	public Lembrete buscaPorId(int id) {
		return this.getDao().buscaPorId(id);
	}

	@Override
	public List<Lembrete> lembretesEnviarEmail(String data) {
		return this.getDao().lembretesEnviarEmail(data);
	}

	@Override
	public List<Lembrete> buscarPorConcurso(int id) {
		List<Lembrete> lembretes = new ArrayList<Lembrete>();
		lembretes = this.getDao().buscarPorConcurso(id);

		return lembretes;
	}

	public int quantidadeLembretesDataAtual(int idUsuario) {
		Date data = new Date();
		SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
		
		return this.getDao().quantidadeLembretesDeHoje(idUsuario, formatador.format(data));
	}
}
